//package cn.nfwx.tv.controller;
//
//import android.app.Activity;
//import android.os.Handler;
//import android.os.Message;
//import android.support.v7.widget.LinearLayoutManager;
//import android.support.v7.widget.OrientationHelper;
//import android.support.v7.widget.RecyclerView;
//import android.util.Log;
//import android.view.View;
//import android.view.ViewGroup;
//import android.widget.CompoundButton;
//import android.widget.ImageView;
//import android.widget.LinearLayout;
//import android.widget.TextView;
//import android.widget.Toast;
//
//import org.greenrobot.eventbus.EventBus;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.Timer;
//import java.util.TimerTask;
//
//import cn.nfwx.tv.R;
//import cn.nfwx.tv.adapter.DownLoadingAdapter;
//import cn.nfwx.tv.divider.RecycleViewDivider;
//import cn.nfwx.tv.events.EditEvents;
//import cn.nfwx.tv.manager.DownLoadManager;
//import cn.nfwx.tv.util.NetworkUtil;
//import cn.nfwx.tv.util.SharePrefUtil;
//import p2psvideo.P2PSMgr;
//
///**
// * Created by zb.liu on 2017/11/22.
// */
//
//public class DownloadViewController implements View.OnClickListener, DownLoadingAdapter.OnCheckedChangeDeleteListener {
//    private final static String TAG_LOG = DownloadViewController.class.getSimpleName();
//    private Activity activity;
//    private RecyclerView recyclerView;
//    private DownLoadingAdapter adapter;
//    private DownLoadingAdapter.OnItemClickListener onItemClickListener;
//    private LinearLayout bottom_layout;
//    private TextView downloading_cancle, downloading_delete_btn;
//    private ImageView btn_all;
//    private TextView all_text;
//    private boolean isFull = false;
//    private Timer timer;
//    private boolean isHasDownload = false;
//    private View notDataView;
//    private View errorView;
//    private ImageView empty_image, error_image;
//    private TextView empty_text, error_text;
//    private LinearLayout error_refresh_btn;
//    private List mData = new ArrayList<P2PSMgr.P2PSFileInfo>();
//    private Map<String, P2PSMgr.P2PSFileInfo> map = new HashMap<String, P2PSMgr.P2PSFileInfo>();
//    private LinearLayout pause_lin;
//
//    public DownloadViewController(Activity activity, View view) {
//        this.activity = activity;
//        timer = new Timer();
//        initView(view);
//
//    }
//
//    public void initView(View view) {
//        recyclerView = findView(view, R.id.downloading_recyclerView);
//        bottom_layout = findView(view, R.id.bottom_layout);
//        pause_lin = findView(view, R.id.pause_lin);
//        downloading_cancle = findView(view, R.id.downloading_cancle);
//        downloading_delete_btn = findView(view, R.id.downloading_delete_btn);
//        btn_all = findView(view, R.id.btn_all);
//        all_text = findView(view, R.id.all_text);
//        errorView = activity.getLayoutInflater().inflate(R.layout.dialog_network_error, (ViewGroup) recyclerView.getParent(), false);
//        notDataView = activity.getLayoutInflater().inflate(R.layout.view_nodata, (ViewGroup) recyclerView.getParent(), false);
//        error_image = errorView.findViewById(R.id.error_image);
//        error_text = errorView.findViewById(R.id.error_text);
//        empty_image = notDataView.findViewById(R.id.empty_image);
//        empty_text = notDataView.findViewById(R.id.empty_text);
//        error_refresh_btn = errorView.findViewById(R.id.error_refresh_btn);
//        empty_image.setImageResource(R.mipmap.empty_download);
//        empty_text.setText("暂无下载中视频");
//        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(activity);
//        linearLayoutManager.setOrientation(OrientationHelper.VERTICAL);
//        recyclerView.setLayoutManager(linearLayoutManager);
//        recyclerView.addItemDecoration(new RecycleViewDivider(activity, LinearLayoutManager.HORIZONTAL, R.drawable.divider_hotcolumn));
//        adapter = new DownLoadingAdapter(R.layout.fragment_downloading_item, mData);
//        adapter.setOnCheckedChangeDeleteListener(this);
//        recyclerView.setAdapter(adapter);
//        downloading_cancle.setOnClickListener(this);
//        downloading_delete_btn.setOnClickListener(this);
//        btn_all.setOnClickListener(this);
//        error_refresh_btn.setOnClickListener(this);
//        setData();
//        setTimerTask();
//    }
//
//    public void setData() {
//
//        try {
//            mData = DownLoadManager.getDownLoadingList(activity);
//            isHasDownLoad(mData);
//            if (isHasDownload) {
//                btn_all.setBackgroundResource(R.mipmap.mine_pause_nor);
//                all_text.setText("全部暂停");
//            } else {
//                btn_all.setBackgroundResource(R.mipmap.mine_play_nor);
//                all_text.setText("全部开始");
//            }
//            if (mData.size() == 0) {
//                adapter.setEmptyView(notDataView);
//                pause_lin.setVisibility(View.INVISIBLE);
//            } else {
//                adapter.setNewData(mData);
//                pause_lin.setVisibility(View.VISIBLE);
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    public boolean isHasDownLoad(List<P2PSMgr.P2PSFileInfo> mData) {
//        for (P2PSMgr.P2PSFileInfo fileInfo : mData) {
//            Log.d("isHasDownLoad", fileInfo.forDownload + "==" + fileInfo.downloadPolicy);
//            if (fileInfo.forDownload) {
//                isHasDownload = true;
//                return isHasDownload;
//            }
//        }
//        isHasDownload = false;
//        return isHasDownload;
//    }
//
//
//    private void setTimerTask() {
//        timer.schedule(new TimerTask() {
//            @Override
//            public void run() {
//                Message message = new Message();
//                message.what = 1;
//                doActionHandler.sendMessage(message);
//            }
//        }, 1000, 3000/* 表示1000毫秒之後，每隔3000毫秒執行一次 */);
//    }
//
//    /**
//     * do some action
//     */
//    private Handler doActionHandler = new Handler() {
//        @Override
//        public void handleMessage(Message msg) {
//            super.handleMessage(msg);
//            int msgId = msg.what;
//            switch (msgId) {
//                case 1:
//                    // do some action
//                    setData();
//                    break;
//                default:
//                    break;
//            }
//        }
//    };
//
//    public DownLoadingAdapter getAdapter() {
//        if (adapter == null) {
//            adapter = new DownLoadingAdapter(R.layout.fragment_downloading_item, mData);
//        }
//        return adapter;
//
//    }
//
//    public void setItemListener(DownLoadingAdapter.OnItemClickListener listener) {
//        this.onItemClickListener = listener;
//        adapter.setOnItemClickListener(onItemClickListener);
//    }
//
//    public void setBottomLayoutVisiable(boolean visiable) {
//        bottom_layout.setVisibility(visiable ? View.VISIBLE : View.GONE);
//    }
//
//
//    /**
//     * 查找控件
//     *
//     * @param rid
//     * @param <T>
//     * @return
//     */
//    public <T extends View> T findView(View view, int rid) {
//        return (T) view.findViewById(rid);
//    }
//
//    @Override
//    public void onClick(View view) {
//        switch (view.getId()) {
//            case R.id.downloading_cancle:
//                if (isFull) {
//                    adapter.getDeleteData().clear();
//                    adapter.notifyDataSetChanged();
//                    isFull = false;
//                    downloading_cancle.setText("全选");
//                } else {
//                    for (int i = 0; i < adapter.getData().size(); i++) {
//                        if (!adapter.getDeleteData().containsKey(i)) {
//                            if (adapter.getData().get(i) instanceof P2PSMgr.P2PSFileInfo) {
//                                adapter.getDeleteData().put(i, ((P2PSMgr.P2PSFileInfo) adapter.getData().get(i)).vsid);
//                            }
//                        }
//                    }
//                    downloading_cancle.setText("取消全选");
//                    adapter.notifyDataSetChanged();
//                    isFull = true;
//                }
//                break;
//            case R.id.downloading_delete_btn:
//                Map<Integer, String> map = adapter.getDeleteData();
//                for (Integer id : map.keySet()) {
//                    DownLoadManager.deleteDownLoad(activity, map.get(id));//删除下载视频
//                    mData.remove(adapter.getItem(id));
//                }
//                mData = DownLoadManager.getDownLoadingList(activity);
//                adapter.setNewData(mData);
//                adapter.clearDeleteData();
//                adapter.notifyDataSetChanged();
//                setBottomLayoutVisiable(false);
//                EventBus.getDefault().post(new EditEvents());
//                break;
//            case R.id.btn_all:
//
//                if (mData.size() > 0) {
//                    if (isHasDownload) {
//                        for(Object o : mData){
//                            if(o instanceof P2PSMgr.P2PSFileInfo){
//                                P2PSMgr.P2PSFileInfo fileInfo = (P2PSMgr.P2PSFileInfo) o;
//                                DownLoadManager.pauseDownLoad(activity, fileInfo.vsid);
//                            }
//                        }
//                        isHasDownload = false;
//                        btn_all.setBackgroundResource(R.mipmap.mine_play_nor);
//                        all_text.setText("全部开始");
//                    } else {
//                        if (!SharePrefUtil.getDownloadChoose(activity) && NetworkUtil.getNetworkType(activity) != 1) {
//                            Toast.makeText(activity, "当前网络不是WIFI环境，请到设置中修改缓存策略或连接WIFI", Toast.LENGTH_SHORT).show();
//                            return;
//                        }
//                        for(Object o : mData){
//                            if(o instanceof P2PSMgr.P2PSFileInfo){
//                                P2PSMgr.P2PSFileInfo fileInfo = (P2PSMgr.P2PSFileInfo) o;
//                                DownLoadManager.startDownLoad(activity, fileInfo.vsid);
//                            }
//                        }
//                        isHasDownload = true;
//                        btn_all.setBackgroundResource(R.mipmap.mine_pause_nor);
//                        all_text.setText("全部暂停");
//                    }
//                } else {
//                    Toast.makeText(activity, "暂无下载任务", Toast.LENGTH_SHORT).show();
//                }
//
//                break;
//            case R.id.error_refresh_btn:
//                error_image.setImageResource(R.drawable.footer_loading_progress);
//                setData();
//                break;
//        }
//    }
//
//    @Override
//    public void onCheckedChanged(CompoundButton compoundButton, boolean b, int position) {
//        if (b) {
//            if (adapter.getData().get(position) instanceof P2PSMgr.P2PSFileInfo) {
//                adapter.getDeleteData().put(position, ((P2PSMgr.P2PSFileInfo) adapter.getData().get(position)).vsid);
//            }
//        } else {
//            adapter.getDeleteData().remove(adapter.getDeleteData().get(position));
//        }
//        if (adapter.getDeleteData().keySet().size() == adapter.getData().size()) {
//            downloading_cancle.setText("取消全选");//全部勾上
//            isFull = true;
//        } else {
//            downloading_cancle.setText("全选");//还未全部勾上
//            isFull = false;
//        }
//    }
//
//    public void onDestory() {
//        if (timer != null) {
//            timer.cancel();
//        }
//    }
//
//
//}
